<html>
<script>

var w1, w2;
var iframeXHRCount = 0;

if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    testRunner.setPopupBlockingEnabled(false);
}

function log(message)
{
    document.getElementById("log").innerText += message + "\n";
}

iframeXHRFinished = function()
{
    log("FAIL: Iframe XHR request should never finish loading!");
    notifyDone();
}

iframeXHRStarted = function()
{
    log("Started loading iframe XHR request.");
    ++iframeXHRCount;

    if (iframeXHRCount < 2)
        return;

    log("Beginning adoption sequence.");

    // First adoptNode will have an id collision if resource ids are not
    // unique across pages.
    var f = w1.document.getElementsByTagName("iframe")[0];
    w2.document.adoptNode(f);
    w2.document.body.appendChild(f);

    log("PASS: adopted node without id collision");

    // Adopt node back to its original page to verify that the resource id
    // for the iframe was properly removed from its original page.
    w1.document.adoptNode(f);
    w1.document.body.appendChild(f);

    log("PASS: adopted back to original page without id collision");

    notifyDone();
}

function notifyDone()
{
    w1.close();
    w2.close();

    if (window.testRunner)
        testRunner.notifyDone();
}

function test()
{
    w1 = window.open("resources/iframe-reparenting-id-collision-page.html");
    w2 = window.open("resources/iframe-reparenting-id-collision-page.html");
}

</script>
<body onload="test()">
<p>This test checks that resource ids are unique across pages by opening
two pages that both contain an iframe that loads the same number of
resources, then adopting the iframe from one page to the other. If resource
ids are not unique across pages, these pages will have the same resource ids 
and the adoptNode will fail due to an id collision. The iframe is then 
adopted back into its original page to check for id collision from failure
to properly remove its resource id from the original page. </p>
<pre id=log></pre>
</body>
</html>
